import java.util.Map;
import java.util.HashMap;
/*public class RandomListNode {
    int label;
    RandomListNode next = null;
    RandomListNode random = null;

    RandomListNode(int label) {
        this.label = label;
    }
}*/
public class Clone(RandomListNode pHead){//复杂链表的复制，一个链表有三个域(label,next,random)random中存的地址随机
	//思路，使用hashMap<原来节点的地址，新创建的节点的位置>
	if(pHead==null)return pHead;
	RandomListNode cur=pHead;
	Map<RandomListNode,RandomListNode> map=new HashMap<>();
	while(cur!=null){
	 RandomListNode node=new RandomListNode(cur.label);
	 map.put(cur,node);
	 cur=cur.next;
	}
	cur=pHead;
	while(cur!=null){
	map.get(cur).next=map.get(cur.next);
	map.get(cur).random=map.get(cur.random);
	cur=cur.next;
	}
	return map.get(pHead);
}